Checkpoint 24: Animated compiler progress percentage

The Compiler UI displays a live percentage at the right of the Building... caption, formatted as 0.000% through 100.000%.
Percentage and bar now use the same calculated value, animated with requestAnimationFrame while running.
Running percentage remains below 100.000%, including overruns of the last-good duration; 100.000% is displayed only when the build passes.
Failed/cancelled builds freeze at their final estimated percentage and retain their existing failure/cancellation colors.
Last-good and unknown-duration progress curves are unchanged.
The compiler UI remains project neutral and requires no Python runtime or packaged Python files.
